/**
 * MCU 厂家 SDK 中使用的 OS 适配层头文件
 * Copyright (c) 2021 深圳市智辰科技有限公司
 * All rights reserved.
 */

#ifndef _OS_H_
#define _OS_H_

#include "stdc.h"
#include "mcu.h"

#ifdef __cplusplus
extern "C" {
#endif


/// 定义临界区数据结构
typedef void* osCritical;

/// 创建并初始化一个临界区
osCritical osCriticalCreate();
/// 定义一个临界区
#define osCriticalDef(css)   osCritical (css) = osCriticalCreate()
/// 进入临界区
void osCriticalEnter(osCritical css);
/// 退出临界区
void osCriticalLeave(osCritical css);
/// 销毁一个临界区
void osCriticalDelete(osCritical css);

/// @brief 重启
void osReboot(void);
/// @brief 喂看门狗
void osFeedWatchdog(void);

/// 关于动态内存管理
#define osFree(x)    	free(x)
#define osMalloc(x)   	malloc(x)


#ifdef __cplusplus
}
#endif

#endif // _OS_H_
